1. Field of the Invention
The present invention relates to methods and apparatuses for transmitting data representing multiple views of an object. More particularly, the present invention relates to methods and apparatuses for transmitting multiple views of an object over a network of computer systems.
2. Background Information
Digital processing systems, such as conventional computer systems, can often display various different views of an object on a display device which is coupled to the digital processing system. In many such systems, the user of the system may manipulate the object in such a way to see various views of the object. The views, in one example, may be considered to be obtained from the surface of a virtual sphere which surrounds the object. FIG. 1A shows a virtual sphere 10 which surrounds an object 9. The different views of the object may be considered to be taken from various points on the surface of the virtual sphere 10. The virtual sphere 10 includes an equator 12 and a meridian or longitudinal line 14. Point 15b represents the north pole of the virtual sphere and point 15a represents the south pole of the virtual sphere. Points 16, 17, 18, and 19 on the equator 12 represent the locations 0.degree., 90.degree., 180.degree., and 270.degree. respectively along the equator. If the view at point 16 along the equator 12 is considered to be a front view of the object 9, which is shown as a house, then the view from point 18 is a rear view while views from points 17 and 19 are views of the right and left sides respectively. A view from the north pole shows the roof of the house, and a view from the south pole shows the bottom of the house.
Various methods exist in the prior art for manipulating such an object in order to see various views of the object. For example, U.S. Pat. No. 5,019,809 by Michael Chen describes a method for direct manipulation of an object by using a two dimensional cursor control device, such as a mouse, to simulate three dimensional movement over the surface of a virtual sphere in order to see views of the object which is surrounded by the virtual sphere. Other methods, such as the use of sliders displayed on the screen or physical, mechanical sliders which may be manipulated by a user are also well known in the art. These various techniques allow a user to rotate or otherwise manipulate the object in order to see various different views of the object.
It is well known in the art that these views may be used to make a sequence of views which appears to be a movie. Typically these views are displayed in a particular sequence which makes the object appear to be smoothly rotating. For example, the house 9 at the center of the virtual sphere 10 may appear to rotate on an axis defined by the north and south pole. This "movie" is merely the playback of various views of the object taken along the equator 12 in sequence from point 16, through points 17, 18, and 19 and back to point 16. This "movie" may be further enhanced by providing views at different latitudes. FIG. 1B shows an example of the various views which may be provided at each selected latitude. Table 35 includes rows 21 through 31, each of which specify at least one longitude for each latitude. For example, row 21 shows that at latitude 0 (along the equator) at least four views are shown; in this case, the views are from points 16, 17, 18, and 19 of FIG. 1A. It will be appreciated that additional views may be obtained and stored to provide greater resolution along each latitude. For example, views at every 5.degree. or 10.degree. along each latitude provides greater resolution of the object and also makes any "movie" seem more realistic. It will also be appreciated that additional views along additional latitudes may be stored in order to provide greater resolution in the north and south directions.
Table 35 of FIG. 1B represents a typical way in the prior art in which the various views are stored and transmitted between systems. Essentially, the views are stored in circular passes of the object at various vertical levels along the north/south axis. Typically, the physical arrangement of the data in a storage device reflects a similar arrangement of the data, which arrangement is often the manner in which the data is originally captured from the object. For example, a camera may be positioned at each of the different viewpoints in series and the data from the camera may be stored in this order such that there are essentially circular passes of the object at various vertical levels which are captured and stored on a storage device, such as a hard disk or other computer readable media.
On a storage device which has random access capabilities and which provides reasonably fast rates of data retrieval, this storage arrangement provides adequate data rates such that a "movie" may be displayed from these various views. However, if this data is stored in a remote location and is accessed through a network or through a slow input/output port, then storage of this data in this arrangement does not provide adequate or satisfactory display of the object, particularly when the object is to be displayed as a "movie" which may be referred to as an "object movie". This often happens in the case of transmission of objects through the Internet or other networks.
FIG. 2A shows several computer systems which are coupled together through the Internet 103. It will be appreciated herein that the term "Internet" refers to a network of networks which uses certain protocols (e.g. the TCP/IP protocol and possibly other protocols such as HTTP (hypertext transfer protocol) for HTML (hypertext markup language) documents). The physical connections of the Internet and the protocols and communication procedures of the Internet are well known to those in the art. Access to the Internet 103 is typically provided by Internet service providers (ISP's) such as ISP's 105 and 107. Users on client systems, such as client computer systems 121, 125, 135, and 137 obtain access to the Internet through the Internet service providers. Access to the Internet allows users of the client computer systems to exchange information, receive and send e-mails, and view objects, and manipulate these objects as they are received. For example, web server system 109 may contain data representing the object 9 shown in FIG. 1A and provide this data to a client computer system such as client system 121 upon request by the client system 121. Often these web servers are provided by ISPs, such as ISP 105, although a computer system may be set up and connected to the Internet without that system also being an ISP as is well known in the art.
The web server system 109 is typically at least one computer system which operates as a server computer system and is configured to operate with the protocols of the World Wide Web (WWW) and is coupled to the Internet. Optionally, the web server 109 may be part of an ISP which provides access to the Internet for client systems. The web server 109 is shown coupled to other computers in the Internet 103. Client computer systems 121, 125, 135, and 137 may each, with the appropriate web browsing software, view HTML pages provided by the web server 109. These web pages may provide movies, such as QuickTime movies, which may be viewed by users of the particular client computer system.
The ISP 105 provides Internet connectivity for the client computer system 121 through the modem interface 123 which may be considered part of the client computer system 121. The client computer system may be a conventional computer system such as a Macintosh computer, a "network" computer, a Web TV system, or other types of digital processing systems, such as a cellular telephone having digital processing capabilities. Similarly, the ISP 107 provides Internet connectivity for client systems 125, 135, and 137, although as shown in FIG. 2A, the connections are not the same for these three computer systems. Client system 125 is coupled through a modem interface 127 while client computer systems 135 and 137 are part of a Local Area Network (LAN). While FIG. 2A shows the interfaces 123 and 127 as a modem, it will be appreciated that each of these interfaces may be an analog modem, an ISDN modem, a cable modem, a satellite transmission interface (e.g. "Direct PC"), or other interfaces for coupling a computer system or a digital processing system to other digital processing systems. Client computer systems 135 and 137 are coupled to a LAN bus 133 through network interfaces 139 and 141, which may be an Ethernet network interface or other network interfaces. The LAN bus is also coupled to a gateway computer system 131 which may provide firewall and other Internet related services for the local area network. This gateway computer system 131 is coupled to the ISP 107 to provide Internet connectivity to the client computer systems 135 and 137. The gateway computer system 131 may be a conventional server computer system. Also, the web server system 109 may be a conventional server computer system.
Even with modern, high-speed analog modems, data transmission rates through the Internet are often painfully slow. Thus, a user of a client system may request a movie of an object or request the various views representing an object to allow the user to inspect the object. This request will be processed by a server system or some other digital processing system and the data will be transmitted to the requesting client system. This data will be transmitted to the client system in the order shown in FIG. 1B which is typically also the same order used to play back a movie of the object as described above. For example, a series of views along the equator beginning at 0.degree. and progressing consecutively at 5.degree. increments back to 0.degree. may be transmitted from the server system to a client system. In this particular example, 72 different views along the virtual sphere surrounding the object will be transmitted to the client system in series beginning from 0.degree. and ending at 355.degree.. Since each of these views is often high resolution digital data, the transmission of all 72 views can take a considerable amount of time. In order for a user to view the object at, for example, 245.degree., the user must wait for many views to be transmitted. The data for this "object movie" is not accessible in a random (or seekable) way; that is, the order is fixed and can only be accessed in this fixed order rather than in a random access manner. This order of transmission is also the same as the order of the playback of the "object movie." Therefore, it is desirable to provide methods and apparatuses for improved transmission of data representing views of an object.
Previous attempts at solving the problem caused by slow data transfer rates have included techniques for providing streaming movie data which is provided first at a lower resolution within each frame and then at a higher resolution within each frame. That is, a particular frame is first provided at a lower resolution and then data is later provided at a higher resolution for the same frame, and this higher resolution version of the frame replaces the prior version of the frame. Similarly, another approach in the prior art attempts to solve this problem by first providing frames at a lower frame rate, such as 10 frames per second, and then transmitting other frames during that same second. Both of these approaches maintain the order of the data such that the various frames are transmitted in the same sequence in which they are shown when the movie is played back. While this may be effective for conventional movies, it is not effective or satisfactory for a "movie" of an object as described herein.